Unless otherwise indicated herein, the approaches described in this section are not admitted to be prior art by inclusion in this section.
Virtualization allows the abstraction of hardware resources and the pooling of these resources to support multiple virtual machines in a virtualized computing environment. For example, through virtualization, virtual machines running different operating systems may be supported by the same physical machine (known as a “host”). Each virtual machine is provisioned with virtual resources that provide similar functions as the physical hardware of the host, such as central processing unit (CPU) resources, memory resources, storage resources and network resources to run an operating system and applications.
The aim of virtual machine fault tolerance is to achieve a higher level of service continuity in the virtualized computing environment. For example, a pair of virtual machines designated as a “primary virtual machine” and a “secondary virtual machine” may be deployed as a fault tolerance strategy. Users usually interact with the primary virtual machine, and need not be aware of the secondary virtual machine. If the primary virtual machine fails, the secondary virtual machine takes over and continues to execute operations of the primary virtual machine. In order to provide fault tolerance, however, it is important that both the primary virtual machine and secondary virtual machine do not fail simultaneously.